package com.itheima.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.Objects;

/**
 * @author itheima
 * @since 2021-10-28
 */
@RestController
public class AppController {

    @PostMapping("upload")
    public String upload(MultipartFile file) throws Exception {

        // 获取文件大小，字节
        long size = file.getSize();

        System.out.println(size);

        // 获取文件类型
        String contentType = file.getContentType();

        System.out.println(contentType);

        if (Objects.isNull(contentType) || Objects.isNull(size)) {
            return "上传失败";
        }

        long maxSize = 2 * 1024 * 1024;
        if (size > maxSize) {
            throw new Exception("上传失败，请联系管理员");
        }

        String suffix = contentType.split("/")[1];

        // 保存到本地的标准写法
        // 使用一个随机的文件，或者每次上传都有一个独立的文件名
        file.transferTo(new File(System.currentTimeMillis() + "." + suffix));

        return "上传成功";
    }
}
